using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CardTextBuilder")]
	public class CardTextBuilder : MonoClass
	{
		public bool m_useEntityForTextInPlay => method_2<bool>("m_useEntityForTextInPlay");

		public static CardTextBuilder m_fallbackCardTextBuilder => MonoClass.smethod_7<CardTextBuilder>(TritonHs.MainAssemblyPath, "", "CardTextBuilder", "m_fallbackCardTextBuilder");

		public CardTextBuilder(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CardTextBuilder(IntPtr address)
			: this(address, "CardTextBuilder")
		{
		}

		public static string GetRawCardTextInHand(string cardId)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "CardTextBuilder", "GetRawCardTextInHand", cardId);
		}

		public static string GetDefaultCardTextInHand(EntityDef entityDef)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "CardTextBuilder", "GetDefaultCardTextInHand", entityDef);
		}

		public static CardTextBuilder GetFallbackCardTextBuilder()
		{
			return MonoClass.smethod_15<CardTextBuilder>(TritonHs.MainAssemblyPath, "", "CardTextBuilder", "GetFallbackCardTextBuilder", Array.Empty<object>());
		}

		public string BuildCardTextInHand(Entity entity)
		{
			return method_12("BuildCardTextInHand", new Class276.Enum20[1] { Class276.Enum20.Class }, entity);
		}

		public string BuildCardTextInHand(EntityDef entityDef)
		{
			return method_12("BuildCardTextInHand", new Class276.Enum20[1] { Class276.Enum20.Class }, entityDef);
		}

		public bool ContainsBonusDamageToken(Entity entity)
		{
			return method_11<bool>("ContainsBonusDamageToken", new object[1] { entity });
		}

		public string BuildCardTextInHistory(Entity entity)
		{
			return method_13("BuildCardTextInHistory", entity);
		}

		public CardTextHistoryData CreateCardTextHistoryData()
		{
			return method_14<CardTextHistoryData>("CreateCardTextHistoryData", Array.Empty<object>());
		}

		public void OnTagChange(Card card, TagDelta tagChange)
		{
			method_8("OnTagChange", card, tagChange);
		}

		public bool ShouldUseEntityForTextInPlay()
		{
			return method_11<bool>("ShouldUseEntityForTextInPlay", Array.Empty<object>());
		}
	}
}
